
/**
 * 
 * router_cache={
    routername:{
        usecache:1,
        pagination:{},
        queryform_form:{},
        queryform_module:{},
        showrightdetail:1,
        selectedSportTypeInfo:{}
    }
}


这一套全局挂载 

主要方法 调用  API 

path  是脱离了 路由 存在的 路径 ，不用 考虑 路由名称 
 this.set_router_cache_by_path_and_value(path, value)
 this.get_router_cache_value_by_path(path)

流程上  必须  注意  先设置值
翻页器是默认不了的 
套接逻辑顺序必须自己明白
另外因为查询 所用的组件 不一定写在一起   要对  query 另外处理

query_form  必须先 初始化 
对于  因此 造成的  问题  处理如下
查询条件改变  可能无法有效监听  就再点击的时候初始化 做好分流


* 修改人: @jinnian
* 注释时间: 2019-09-04 12:02:04
 */

import { mapGetters, mapActions } from "vuex";
import mixins from "src/mixins/setter/routerCache/routerCache.js"
export default {
  mixins: [mixins],
  data() {
    return {};
  },

  computed: {
    ...mapGetters({
      router_cache: "get_router_cache"
    })
  },
  created() {
    this.init_router_cache_when_cerated();
  },

  beforeRouteLeave(to, from, next) {
    // 在离开页面时候
    // 正常情况下 除了 翻页器 没有挂载之外 其他均已挂载
    // 需要进行后续核对

    //离开之前必须从新挂载一遍

    this.store_router_cache_beforeRouteLeave();

    next();
  },
  methods: {
    store_router_cache_beforeRouteLeave() {
      //  可能某些需要再次确认
       this.set_router_cache_by_path_and_value('pageSize',this.pageSize)
       this.set_router_cache_by_path_and_value('currentPage',this.currentPage)
    },

    init_router_cache_when_cerated() {
      //  初始化  默认每个路由页面 都显示 右侧和 使用缓存
      // 默认 自动集成 当前页面 配置的 查询项目  套接过来
      //

      let obj = {
        usecache: this.usecache || 1,
        pageSize: this.pageSize || 50,
        currentPage: this.currentPage || 1,
        queryform_form: this.queryform_module
          ? { ...this.queryform_module }
          : {},
        queryform_module: this.queryform_module
          ? { ...this.queryform_module }
          : {},
        showrightdetail: this.showrightdetail || 1,
        selectedSportTypeInfo:this.selectedSportTypeInfo?selectedSportTypeInfo:{}
      };

      this.set_router_cache_by_path_and_value("", obj);
    },
    set_router_cache_by_path_and_value(path, value) {

      this.set_router_cache({
        value: value,
        path: path ? `${this.$route.name}.${path}` : `${this.$route.name}`
      });
    },
    get_router_cache_value_by_path(path) {
      console.log( `=============================this.router_cache====================${path}================================` );
      console.log(this.router_cache);
      console.log( this.$store);


      let return_val = this.$lodash.get(
        this.router_cache,
        path ? `${this.$route.name}.${path}` : `${this.$route.name}`
      );
      if (!return_val) {
        console.log( `=============================this.router_cache====================${path}==============当前查找参数 结果为空==================` );
        let message = `当前路由缓存：${this.$route.name}   ，并未挂载：${path} __!  或者 当前查找参数 结果为空，或者即将进行初始化， 核查代码逻辑！！！！  `;
        console.log(this.router_cache);
        this.$q.notify({
          message: `${message}`,
          color: "negative"
        });
      }
      return return_val;
    }
  }
};
